<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>For OF</title>
  </head>
  <body>
    <script>
      // class RangeIterator {
      //   constructor(start, stop) {
      //     this.value = start;
      //     this.stop = stop;
      //   }

      //   [Symbol.iterator]() {
      //     return this;
      //   }

      //   next() {
      //     var value = this.value;
      //     if (value < this.stop) {
      //       this.value++;
      //       return { done: false, value: value };
      //     } else {
      //       return { done: true, value: undefined };
      //     }
      //   }
      // }

      class RangeIterator {
        constructor(start, stop) {
          Object.assign(this, { start, stop });
        }
        *[Symbol.iterator]() {
          for (let i = this.value; i < this.stop; i++) yield i;
        }
      }

      for (let i of new RangeIterator(10, 15)) console.log(i);

      // let obj = {
      //   name: "haha",
      //   sayHello() {
      //     console.log(this.name);
      //   },
      // };
      // obj.sayHello();
    </script>
  </body>
</html>
